﻿using Nop.Core;
using Nop.Core.Domain.WindAlert;
using System.Collections.Generic;

namespace Nop.Services.WindAlert
{
    /// <summary>
    /// Spot service
    /// </summary>
    public partial interface IMobileDeviceService
    {
        #region Methods

        #region MobileDevice

        /// <summary>
        /// Deletes a MobileDevice
        /// </summary>
        /// <param name="MobileDevice">MobileDevice</param>
        void DeleteMobileDevice(MobileDevice mobileDevice);

        /// <summary>
        /// Gets a MobileDevice collection
        /// </summary>
        /// <returns> MobileDevice collection</returns>
        IList<MobileDevice> GetAllMobileDevices();

        /// <summary>
        /// Gets all mobileDevice
        /// </summary>
        /// <param name="pageIndex">Page index</param>
        /// <param name="pageSize">Page size</param>
        /// <returns>Cameras</returns>
        IPagedList<MobileDevice> GetAllMobileDevices(int pageIndex, int pageSize);


        /// <summary>
        /// Gets a MobileDevice collection
        /// </summary>
        /// <param name="GCMRegistrationToken">gCMRegistrationToken identifier</param>
        /// <returns> MobileDevices collection</returns>
        MobileDevice GetMobileDeviceByGCMRegistrationToken(string gCMRegistrationToken);

        /// <summary>
        /// Gets a MobileDevice collection
        /// </summary>
        /// <param name="customerId">customer identifier</param>
        /// <returns> MobileDevice collection</returns>
        IList<MobileDevice> GetMobileDevicesByCustomerId(int customerId);

        /// <summary>
        /// Gets a MobileDevice collection
        /// </summary>
        /// <param name="customerId">customer id identifier</param>
        /// <param name="operationSystem">operationSystem identifier</param>
        /// <param name="operationSystemId">operationSystem id identifier</param>
        /// <returns> MobileDevice collection</returns>
        MobileDevice GetMobileDevicesByCustomerIdBySystem(int customerId, string operationSystem, string operationSystemId);

        /// <summary>
        /// Gets a MobileDevice
        /// </summary>
        /// <param name="MobileDeviceId">MobileDevice identifier</param>
        /// <returns>MobileDevice</returns>
        MobileDevice GetMobileDeviceById(int mobileDeviceId);

        /// <summary>
        /// Inserts MobileDevice
        /// </summary>
        /// <param name="MobileDevice">MobileDevice</param>
        void InsertMobileDevice(MobileDevice mobileDevice);

        /// <summary>
        /// Updates the MobileDevice  
        /// </summary>
        /// <param name="MobileDevice">MobileDevice</param>
        void UpdateMobileDevice(MobileDevice mobileDevice);

        /// <summary>
        /// Get chaeck existing record
        /// </summary>
        /// <returns>MobileDevice</returns>
        MobileDevice CheckIfMobileDeviceExists(MobileDevice mobileDevice);
       
        #endregion

        #endregion

    }
}
